﻿using System;
using System.Collections.ObjectModel;
using AMEE.MyFusionTest;
using System.Collections.Generic;
using System.Windows;
using System.Diagnostics;
using System;
using System.Windows.Input;
using MvvmFoundation.Wpf; //RelayCommand; siehe http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090030

namespace AMEE.MyFusionTestViewModel
{
    /// <summary>
    /// ViewModel zur Darstellung der Daten im Hauptfenster.
    /// <para>
    /// Intern enthält dieses ViewModel eine Collection von ViewModels, die über das entsprechende
    /// Property im XAML eingebunden werden können, bspw. durch:
    /// <code>
    /// &lt;ItemsControl ItemsSource="{Binding ViewModels}" /&gt;
    /// </code>
    /// </para>
    /// </summary>
    public class MainWindowViewModel : ViewModelBase
    {
        #region Properties

        /// <summary>Sammlung einzerlner view-models, die im MainWindow zusammen dargestellt werden (können)</summary>
        ObservableCollection<ViewModelBase> _viewModels;
        /// <summary>
        /// Gibt die ViewModels
        /// </summary>
        public ObservableCollection<ViewModelBase> ViewModels
        {
            get
            {
                if (_viewModels == null)
                {
                    _viewModels = new ObservableCollection<ViewModelBase>();
                }
                return _viewModels;
            }
        }

        #endregion

        #region Widget Commands
        /*
        RelayCommand _doStepCommand;
        /// <summary>
        /// Gibt das ICommand zum Ausführen einer Schrittfolge.
        /// </summary>
        public ICommand DoStepCommand
        {
            get
            {
                if (_doStepCommand == null)
                    _doStepCommand = new RelayCommand(() => doStepExecute(), () => doStepCanExecute());
                return _doStepCommand;
            }
        }
        private void doStepExecute() {
            setOccupied(false);
            action = _sarsa.runEpisode(20, new int[] { 44 });
            evalAgentPos();
        }
        */

        #endregion


        /// <summary>
        /// Erzeugt neue ViewModel zur Darstellung der Daten im Hauptfenster.
        /// </summary>
        public MainWindowViewModel()
        {
            //initWorld();

            //create instance of our view model to display data, add it to our collection
            //gvm = new GridViewModel(_sarsa.AllQVals, 10, _sarsa.Eligibilities);
            //ViewModels.Add(gvm);
        }
    }
}

